package com.cxdr.awsips.distribute.file;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Set;

import com.cxdr.awsips.distribute.rule.FileNameRule;
import com.cxdr.awsips.distribute.rule.TimeRule;

/**
 * 为访问文件提供方法
 * 
 * @author pugang
 */
public interface FileHelper {
	// Set<String> scanDir();
	Set<File> scanDir();

	Set<File> scanDir(String dir);

	Set<File> scanDir(String dir, String fileType);

	/**
	 * 下载文件
	 * 
	 * @param fileName
	 * @return
	 */
	File getFile(String fileName);

	/**
	 * 打开连接
	 * 
	 * @throws IOException
	 */
	void open() throws IOException;

	/**
	 * 关闭连接
	 */
	void close();

	/**
	 * 重命名文件
	 * 
	 * @param from
	 * @param to
	 * @return
	 */
	boolean renameFile(String from, String to);

	/**
	 * 删除文件
	 * 
	 * @param fileName
	 * @return
	 */
	boolean deleteFile(String fileName);

	/**
	 * 上传文件
	 * 
	 * @param file
	 * @return
	 */
	boolean uploadFile(File file);

	/**
	 * 设置远程工作目录
	 * 
	 * @param remoteDir
	 */
	void setRemoteDir(String remoteDir);

	/**
	 * 设置本地工作目录
	 * 
	 * @param localDir
	 */
	void setLocalDir(String localDir);

	public List<FileNameRule> getFileNameRules();

	public void setFileNameRules(List<FileNameRule> fileNameRules);

	public List<TimeRule> getTimeRules();

	public void setTimeRules(List<TimeRule> timeRules);

	public long getKeyTime();

	public void setKeyTime(long keyTime);

	public boolean isSub();

	public void setSub(boolean sub);
}
